package com.joolun.system.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.joolun.common.annotation.Excel;
import com.joolun.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Id;

/**
 * 排期班级派量对象 edu_scheduling_class
 * 
 * @author joolun
 * @date 2025-03-05
 */
@Data
public class EduSchedulingClass extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 班级id */
    @TableId(value = "class_id", type = IdType.AUTO)
    private Long classId;

    /** 排期id */
    @Excel(name = "排期id")
    private Long schedulingId;

    /** 班级名称 */
    @Excel(name = "班级名称")
    private String className;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 销售id */
    @Excel(name = "销售id")
    private Long userId;

    /** 企业微信id */
    @Excel(name = "企业微信id")
    private String wecomId;

    /** 二维码 */
    @Excel(name = "二维码")
    private String qrCode;

    /** 码的类型：1-群二维码，2-销售个人码，3-企业微信码，4-企业微信群码 */
    @Excel(name = "码的类型：1-群二维码，2-销售个人码，3-企业微信码，4-企业微信群码")
    private String codeType;

    /** 接量状态：1-正常接量，2-关闭接量 */
    @Excel(name = "接量状态：1-正常接量，2-关闭接量")
    private Long receivedQuantityStatus;

    /** 最多扫描 */
    @Excel(name = "最多扫描")
    private Long maxNumber;

    /** 流量分类：A类流量-Z类流量 */
    @Excel(name = "流量分类：A类流量-Z类流量")
    private Long internetTrafficType;

    /** 排序 */
    @Excel(name = "排序")
    private Long classSort;

    /** 失效时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效时间", width = 30, dateFormat = "yyyy-MM-dd HH-mm-ss")
    private String failureTime;

    /** 联系我配置ID */
    private String configId;
    /** 自定义state */
    private String state;
    /** 好友数 */
    private Integer friendNum;
    /** 删友数 */
    private Integer delFriendNum;
    /** 扫码未加友数 */
    private Integer scanNoFriend;
    /** 扫码数 */
    private Integer scanNum;
    /** 入群数 */
    private Integer intoGroupNum;
    /** 退群数 */
    private Integer quitGroupNum;

    /** 主体id */
    @Excel(name = "主体id")
    private String corpId;

    public void setClassId(Long classId) 
    {
        this.classId = classId;
    }

    public Long getClassId() 
    {
        return classId;
    }
    public void setSchedulingId(Long schedulingId) 
    {
        this.schedulingId = schedulingId;
    }

    public Long getSchedulingId() 
    {
        return schedulingId;
    }
    public void setClassName(String className) 
    {
        this.className = className;
    }

    public String getClassName() 
    {
        return className;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setQrCode(String qrCode)
    {
        this.qrCode = qrCode;
    }

    public String getQrCode() 
    {
        return qrCode;
    }
    public void setCodeType(String codeType) 
    {
        this.codeType = codeType;
    }

    public String getCodeType() 
    {
        return codeType;
    }
    public void setReceivedQuantityStatus(Long receivedQuantityStatus) 
    {
        this.receivedQuantityStatus = receivedQuantityStatus;
    }

    public Long getReceivedQuantityStatus() 
    {
        return receivedQuantityStatus;
    }
    public void setMaxNumber(Long maxNumber) 
    {
        this.maxNumber = maxNumber;
    }

    public Long getMaxNumber() 
    {
        return maxNumber;
    }
    public void setInternetTrafficType(Long internetTrafficType) 
    {
        this.internetTrafficType = internetTrafficType;
    }

    public Long getInternetTrafficType() 
    {
        return internetTrafficType;
    }
    public void setClassSort(Long classSort) 
    {
        this.classSort = classSort;
    }

    public Long getClassSort() 
    {
        return classSort;
    }
    public void setFailureTime(String failureTime)
    {
        this.failureTime = failureTime;
    }

    public String getFailureTime()
    {
        return failureTime;
    }

    public String getWecomId() {
        return wecomId;
    }

    public void setWecomId(String wecomId) {
        this.wecomId = wecomId;
    }

    public String getConfigId() {
        return configId;
    }

    public void setConfigId(String configId) {
        this.configId = configId;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public Integer getFriendNum() {
        return friendNum;
    }

    public void setFriendNum(Integer friendNum) {
        this.friendNum = friendNum;
    }

    public Integer getDelFriendNum() {
        return delFriendNum;
    }

    public void setDelFriendNum(Integer delFriendNum) {
        this.delFriendNum = delFriendNum;
    }

    public Integer getScanNoFriend() {
        return scanNoFriend;
    }

    public void setScanNoFriend(Integer scanNoFriend) {
        this.scanNoFriend = scanNoFriend;
    }

    public Integer getScanNum() {
        return scanNum;
    }

    public void setScanNum(Integer scanNum) {
        this.scanNum = scanNum;
    }

    public Integer getIntoGroupNum() {
        return intoGroupNum;
    }

    public void setIntoGroupNum(Integer intoGroupNum) {
        this.intoGroupNum = intoGroupNum;
    }

    public Integer getQuitGroupNum() {
        return quitGroupNum;
    }

    public void setQuitGroupNum(Integer quitGroupNum) {
        this.quitGroupNum = quitGroupNum;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("classId", getClassId())
            .append("schedulingId", getSchedulingId())
            .append("className", getClassName())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("delFlag", getDelFlag())
            .append("userId", getUserId())
            .append("wecomId", getWecomId())
            .append("qrCode", getQrCode())
            .append("codeType", getCodeType())
            .append("receivedQuantityStatus", getReceivedQuantityStatus())
            .append("maxNumber", getMaxNumber())
            .append("internetTrafficType", getInternetTrafficType())
            .append("classSort", getClassSort())
            .append("failureTime", getFailureTime())
            .toString();
    }
}
